
const log4js = require('log4js')
const path = require('path')

const log = {
  setDir(dirName, size) {
    initLogConfigure(dirName, size)
    return log4js.getLogger()
  }
}

const initLogConfigure = (dirName, size = 100) => {
  log4js.configure({
    appenders: {
      out1: {
        // 输出到控制台(带颜色) stdout, console
        type: 'stdout',
      },
      out2: {
        type: 'file',
        // 文件路径和名称
        filename: dirName + path.join('/log.log'),
        // 单个日志文件最大字节限制(默认100M)
        maxLogSize: 1024 ** 2 * size,
        //生成文件是保留文件扩展名 
        keepFileExt: true,
        layout: {
          type: 'pattern',
          // 日期格式: %d{yyyy-MM-dd hh:mm:ss,SSS}  类型: %p  参数1: %m   参数2: %n
          pattern: '[%d{yyyy-MM-dd hh:mm:ss}] [%p] %m%n'
        }
      }
    },
    categories: {
      default: {
        // 输出方式
        appenders: ['out2'],
        // 输出日志等级(权重), 由低到高分别为: trace, debug, info, warn, error, fatal
        level: 'trace'
      }
    }
  })
}

module.exports = log